<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>read_dict [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_tuple.html">Tuple</a> / <a href="toc_tuple_containers.html">Data Containers</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">read_dict</span><span data-if="c" style="display:none;">T_read_dict</span><span data-if="cpp" style="display:none;">ReadDict</span><span data-if="dotnet" style="display:none;">ReadDict</span><span data-if="python" style="display:none;">read_dict</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">read_dict</span><span data-if="c" style="display:none;">T_read_dict</span><span data-if="cpp" style="display:none;">ReadDict</span><span data-if="dotnet" style="display:none;">ReadDict</span><span data-if="python" style="display:none;">read_dict</span></code> — Read a dictionary from a file.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>read_dict</b>( :  : <a href="#FileName"><i>FileName</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : <a href="#DictHandle"><i>DictHandle</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_read_dict</b>(const Htuple <a href="#FileName"><i>FileName</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>, Htuple* <a href="#DictHandle"><i>DictHandle</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>ReadDict</b>(const HTuple&amp; <a href="#FileName"><i>FileName</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#DictHandle"><i>DictHandle</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>HDict</b>(const HString&amp; <a href="#FileName"><i>FileName</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>HDict</b>(const HString&amp; <a href="#FileName"><i>FileName</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HString&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>HDict</b>(const char* <a href="#FileName"><i>FileName</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, const char* <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>HDict</b>(const wchar_t* <a href="#FileName"><i>FileName</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, const wchar_t* <a href="#GenParamValue"><i>GenParamValue</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>ReadDict</b>(const HString&amp; <a href="#FileName"><i>FileName</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>ReadDict</b>(const HString&amp; <a href="#FileName"><i>FileName</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HString&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>ReadDict</b>(const char* <a href="#FileName"><i>FileName</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, const char* <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>::<b>ReadDict</b>(const wchar_t* <a href="#FileName"><i>FileName</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, const wchar_t* <a href="#GenParamValue"><i>GenParamValue</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>ReadDict</b>(<a href="HTuple.html">HTuple</a> <a href="#FileName"><i>fileName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#DictHandle"><i>dictHandle</i></a>)</code></p>
<p>
<code>public <a href="HDict.html">HDict</a>(string <a href="#FileName"><i>fileName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>public <a href="HDict.html">HDict</a>(string <a href="#FileName"><i>fileName</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, string <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>.<b>ReadDict</b>(string <a href="#FileName"><i>fileName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HDict.html">HDict</a>.<b>ReadDict</b>(string <a href="#FileName"><i>fileName</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, string <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>read_dict</b>(<a href="#FileName"><i>file_name</i></a>: str, <a href="#GenParamName"><i>gen_param_name</i></a>: MaybeSequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: MaybeSequence[Union[int, float, str]]) -&gt; HHandle</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">read_dict</span><span data-if="c" style="display:none">read_dict</span><span data-if="cpp" style="display:none">ReadDict</span><span data-if="com" style="display:none">ReadDict</span><span data-if="dotnet" style="display:none">ReadDict</span><span data-if="python" style="display:none">read_dict</span></code> reads a dictionary from the file <a href="#FileName"><i><code><span data-if="hdevelop" style="display:inline">FileName</span><span data-if="c" style="display:none">FileName</span><span data-if="cpp" style="display:none">FileName</span><span data-if="com" style="display:none">FileName</span><span data-if="dotnet" style="display:none">fileName</span><span data-if="python" style="display:none">file_name</span></code></i></a>
and returns the handle of the dictionary in <a href="#DictHandle"><i><code><span data-if="hdevelop" style="display:inline">DictHandle</span><span data-if="c" style="display:none">DictHandle</span><span data-if="cpp" style="display:none">DictHandle</span><span data-if="com" style="display:none">DictHandle</span><span data-if="dotnet" style="display:none">dictHandle</span><span data-if="python" style="display:none">dict_handle</span></code></i></a>.
</p>
<p>该算子 supports the following file formats:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'hdict'</span><span data-if="c" style="display:none">"hdict"</span><span data-if="cpp" style="display:none">"hdict"</span><span data-if="com" style="display:none">"hdict"</span><span data-if="dotnet" style="display:none">"hdict"</span><span data-if="python" style="display:none">"hdict"</span></i>:</b></dt>
<dd><p>

Binary HALCON format for dictionaries. Files with this format can be
written by <a href="write_dict.html"><code><span data-if="hdevelop" style="display:inline">write_dict</span><span data-if="c" style="display:none">write_dict</span><span data-if="cpp" style="display:none">WriteDict</span><span data-if="com" style="display:none">WriteDict</span><span data-if="dotnet" style="display:none">WriteDict</span><span data-if="python" style="display:none">write_dict</span></code></a>.
The default file extension for this format is 'hdict'.
</p></dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'json'</span><span data-if="c" style="display:none">"json"</span><span data-if="cpp" style="display:none">"json"</span><span data-if="com" style="display:none">"json"</span><span data-if="dotnet" style="display:none">"json"</span><span data-if="python" style="display:none">"json"</span></i>:</b></dt>
<dd><p>

JSON (JavaScript Object Notation) file format.
The default file extension for this format is 'json'.
</p></dd>
</dl>
<p>If the given file does not exist, 该算子 attempts to find
the file by appending the default file extensions to the filename.
The file type is automatically recognized based on the file content
and the file ending (which have to be consistent).
</p>
<p>A set of additional optional parameters can be set. The names and values
of the parameters are passed in <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and
<a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>, respectively. Some of the optional parameters
can only be set for a certain file type. The following values for
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> are possible:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'json_value_true'</span><span data-if="c" style="display:none">"json_value_true"</span><span data-if="cpp" style="display:none">"json_value_true"</span><span data-if="com" style="display:none">"json_value_true"</span><span data-if="dotnet" style="display:none">"json_value_true"</span><span data-if="python" style="display:none">"json_value_true"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'json_value_false'</span><span data-if="c" style="display:none">"json_value_false"</span><span data-if="cpp" style="display:none">"json_value_false"</span><span data-if="com" style="display:none">"json_value_false"</span><span data-if="dotnet" style="display:none">"json_value_false"</span><span data-if="python" style="display:none">"json_value_false"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'json_value_null'</span><span data-if="c" style="display:none">"json_value_null"</span><span data-if="cpp" style="display:none">"json_value_null"</span><span data-if="com" style="display:none">"json_value_null"</span><span data-if="dotnet" style="display:none">"json_value_null"</span><span data-if="python" style="display:none">"json_value_null"</span></i>:</b></dt>
<dd>
<p>

Set the values that are used for JSON primitives.
Valid JSON primitives are <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, and
<i><span data-if="hdevelop" style="display:inline">'null'</span><span data-if="c" style="display:none">"null"</span><span data-if="cpp" style="display:none">"null"</span><span data-if="com" style="display:none">"null"</span><span data-if="dotnet" style="display:none">"null"</span><span data-if="python" style="display:none">"null"</span></i>.
When encountering such a primitive in a JSON file, the corresponding
value in the read dictionary is set to the value defined with these
parameters.
The value passed in <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> must be a tuple of length 1.
</p>
<p>The default values for primitives are
<i>1</i> for <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>,
<i>0</i> for <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, and
<i><span data-if="hdevelop" style="display:inline">'HNULL'</span><span data-if="c" style="display:none">"HNULL"</span><span data-if="cpp" style="display:none">"HNULL"</span><span data-if="com" style="display:none">"HNULL"</span><span data-if="dotnet" style="display:none">"HNULL"</span><span data-if="python" style="display:none">"HNULL"</span></i> for <i><span data-if="hdevelop" style="display:inline">'null'</span><span data-if="c" style="display:none">"null"</span><span data-if="cpp" style="display:none">"null"</span><span data-if="com" style="display:none">"null"</span><span data-if="dotnet" style="display:none">"null"</span><span data-if="python" style="display:none">"null"</span></i>.
These parameters only have an effect when reading a JSON file.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'convert_json_arrays_to'</span><span data-if="c" style="display:none">"convert_json_arrays_to"</span><span data-if="cpp" style="display:none">"convert_json_arrays_to"</span><span data-if="com" style="display:none">"convert_json_arrays_to"</span><span data-if="dotnet" style="display:none">"convert_json_arrays_to"</span><span data-if="python" style="display:none">"convert_json_arrays_to"</span></i>:</b></dt>
<dd>
<p>

This parameter controls which HALCON-internal data type is used
to represent JSON arrays.
Possible values for <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> are:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'dict'</span><span data-if="c" style="display:none">"dict"</span><span data-if="cpp" style="display:none">"dict"</span><span data-if="com" style="display:none">"dict"</span><span data-if="dotnet" style="display:none">"dict"</span><span data-if="python" style="display:none">"dict"</span></i> (default):</b></dt>
<dd>
<p>

JSON arrays are converted into HALCON-Dictionaries with consecutive
integer keys starting at <i>0</i>.
This is always possible, even if the JSON array contains further
JSON arrays.
However, using dictionaries might require more memory than storing
the same data in HALCON tuples.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'tuple'</span><span data-if="c" style="display:none">"tuple"</span><span data-if="cpp" style="display:none">"tuple"</span><span data-if="com" style="display:none">"tuple"</span><span data-if="dotnet" style="display:none">"tuple"</span><span data-if="python" style="display:none">"tuple"</span></i>:</b></dt>
<dd>
<p>

JSON arrays are converted into HALCON tuples.
If this is not possible, for example if an array contains an array,
an exception is raised.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'tuple_if_possible'</span><span data-if="c" style="display:none">"tuple_if_possible"</span><span data-if="cpp" style="display:none">"tuple_if_possible"</span><span data-if="com" style="display:none">"tuple_if_possible"</span><span data-if="dotnet" style="display:none">"tuple_if_possible"</span><span data-if="python" style="display:none">"tuple_if_possible"</span></i>:</b></dt>
<dd>
<p>

JSON arrays are converted into HALCON tuples if possible, and into
HALCON dictionaries otherwise.
</p>
<p>Note that when using this option, the structure of the returned
dictionary can change even if the JSON data follows the same schema.
For example, an array of 2D point coordinates of the form
<i><span data-if="hdevelop" style="display:inline">'{"pt": [[1,2], [3,4]]}'</span><span data-if="c" style="display:none">"{"pt": [[1,2], [3,4]]}"</span><span data-if="cpp" style="display:none">"{"pt": [[1,2], [3,4]]}"</span><span data-if="com" style="display:none">"{"pt": [[1,2], [3,4]]}"</span><span data-if="dotnet" style="display:none">"{"pt": [[1,2], [3,4]]}"</span><span data-if="python" style="display:none">"{"pt": [[1,2], [3,4]]}"</span></i>
would be converted into an outer dictionary which contains two
tuples.
However, if under the same schema no points are contained in the
array, the corresponding entry in the JSON of the form
<i><span data-if="hdevelop" style="display:inline">'{"pt": []}'</span><span data-if="c" style="display:none">"{"pt": []}"</span><span data-if="cpp" style="display:none">"{"pt": []}"</span><span data-if="com" style="display:none">"{"pt": []}"</span><span data-if="dotnet" style="display:none">"{"pt": []}"</span><span data-if="python" style="display:none">"{"pt": []}"</span></i>
would be converted into a tuple instead of a dictionary.
Code using the read dictionary must be prepared to deal with this
kind of change in types.
</p>
</dd>
</dl>
</dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>Multithreading type: independent (runs in parallel even with exclusive operators).</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="FileName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">FileName</span><span data-if="c" style="display:none">FileName</span><span data-if="cpp" style="display:none">FileName</span><span data-if="com" style="display:none">FileName</span><span data-if="dotnet" style="display:none">fileName</span><span data-if="python" style="display:none">file_name</span></code></b> (input_control)  </span><span>filename.read <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">File name.</p>
<p class="pardesc"><span class="parcat">File extension:
          </span>.<code>hdict</code>, .<code>json</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>attribute.name(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Name of the generic parameter.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'convert_json_arrays_to'</span><span data-if="c" style="display:none">"convert_json_arrays_to"</span><span data-if="cpp" style="display:none">"convert_json_arrays_to"</span><span data-if="com" style="display:none">"convert_json_arrays_to"</span><span data-if="dotnet" style="display:none">"convert_json_arrays_to"</span><span data-if="python" style="display:none">"convert_json_arrays_to"</span>, <span data-if="hdevelop" style="display:inline">'json_value_false'</span><span data-if="c" style="display:none">"json_value_false"</span><span data-if="cpp" style="display:none">"json_value_false"</span><span data-if="com" style="display:none">"json_value_false"</span><span data-if="dotnet" style="display:none">"json_value_false"</span><span data-if="python" style="display:none">"json_value_false"</span>, <span data-if="hdevelop" style="display:inline">'json_value_null'</span><span data-if="c" style="display:none">"json_value_null"</span><span data-if="cpp" style="display:none">"json_value_null"</span><span data-if="com" style="display:none">"json_value_null"</span><span data-if="dotnet" style="display:none">"json_value_null"</span><span data-if="python" style="display:none">"json_value_null"</span>, <span data-if="hdevelop" style="display:inline">'json_value_true'</span><span data-if="c" style="display:none">"json_value_true"</span><span data-if="cpp" style="display:none">"json_value_true"</span><span data-if="com" style="display:none">"json_value_true"</span><span data-if="dotnet" style="display:none">"json_value_true"</span><span data-if="python" style="display:none">"json_value_true"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>attribute.name(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Value of the generic parameter.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 1, <span data-if="hdevelop" style="display:inline">'HNULL'</span><span data-if="c" style="display:none">"HNULL"</span><span data-if="cpp" style="display:none">"HNULL"</span><span data-if="com" style="display:none">"HNULL"</span><span data-if="dotnet" style="display:none">"HNULL"</span><span data-if="python" style="display:none">"HNULL"</span>, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, <span data-if="hdevelop" style="display:inline">'dict'</span><span data-if="c" style="display:none">"dict"</span><span data-if="cpp" style="display:none">"dict"</span><span data-if="com" style="display:none">"dict"</span><span data-if="dotnet" style="display:none">"dict"</span><span data-if="python" style="display:none">"dict"</span>, <span data-if="hdevelop" style="display:inline">'tuple'</span><span data-if="c" style="display:none">"tuple"</span><span data-if="cpp" style="display:none">"tuple"</span><span data-if="com" style="display:none">"tuple"</span><span data-if="dotnet" style="display:none">"tuple"</span><span data-if="python" style="display:none">"tuple"</span>, <span data-if="hdevelop" style="display:inline">'tuple_if_possible'</span><span data-if="c" style="display:none">"tuple_if_possible"</span><span data-if="cpp" style="display:none">"tuple_if_possible"</span><span data-if="com" style="display:none">"tuple_if_possible"</span><span data-if="dotnet" style="display:none">"tuple_if_possible"</span><span data-if="python" style="display:none">"tuple_if_possible"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="DictHandle" class="parname"><b><code><span data-if="hdevelop" style="display:inline">DictHandle</span><span data-if="c" style="display:none">DictHandle</span><span data-if="cpp" style="display:none">DictHandle</span><span data-if="com" style="display:none">DictHandle</span><span data-if="dotnet" style="display:none">dictHandle</span><span data-if="python" style="display:none">dict_handle</span></code></b> (output_control)  </span><span>dict <code>→</code> <span data-if="dotnet" style="display:none"><a href="HDict.html">HDict</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Dictionary handle.</p>
<p class="pardesc"><span class="parcat">Number of elements:
      </span>DictHandle == 1</p>
</div>
<h2 id="sec_result">结果</h2>
<p>如果参数均有效，算子 <code><span data-if="hdevelop" style="display:inline">read_dict</span><span data-if="c" style="display:none">read_dict</span><span data-if="cpp" style="display:none">ReadDict</span><span data-if="com" style="display:none">ReadDict</span><span data-if="dotnet" style="display:none">ReadDict</span><span data-if="python" style="display:none">read_dict</span></code> returns
the value <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    . If necessary an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="write_dict.html"><span data-if="hdevelop" style="display:inline">write_dict</span><span data-if="c" style="display:none">write_dict</span><span data-if="cpp" style="display:none">WriteDict</span><span data-if="com" style="display:none">WriteDict</span><span data-if="dotnet" style="display:none">WriteDict</span><span data-if="python" style="display:none">write_dict</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="json_to_dict.html"><span data-if="hdevelop" style="display:inline">json_to_dict</span><span data-if="c" style="display:none">json_to_dict</span><span data-if="cpp" style="display:none">JsonToDict</span><span data-if="com" style="display:none">JsonToDict</span><span data-if="dotnet" style="display:none">JsonToDict</span><span data-if="python" style="display:none">json_to_dict</span></a></code>, 
<code><a href="create_dict.html"><span data-if="hdevelop" style="display:inline">create_dict</span><span data-if="c" style="display:none">create_dict</span><span data-if="cpp" style="display:none">CreateDict</span><span data-if="com" style="display:none">CreateDict</span><span data-if="dotnet" style="display:none">CreateDict</span><span data-if="python" style="display:none">create_dict</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="write_dict.html"><span data-if="hdevelop" style="display:inline">write_dict</span><span data-if="c" style="display:none">write_dict</span><span data-if="cpp" style="display:none">WriteDict</span><span data-if="com" style="display:none">WriteDict</span><span data-if="dotnet" style="display:none">WriteDict</span><span data-if="python" style="display:none">write_dict</span></a></code>, 
<code><a href="serialize_handle.html"><span data-if="hdevelop" style="display:inline">serialize_handle</span><span data-if="c" style="display:none">serialize_handle</span><span data-if="cpp" style="display:none">SerializeHandle</span><span data-if="com" style="display:none">SerializeHandle</span><span data-if="dotnet" style="display:none">SerializeHandle</span><span data-if="python" style="display:none">serialize_handle</span></a></code>, 
<code><a href="deserialize_handle.html"><span data-if="hdevelop" style="display:inline">deserialize_handle</span><span data-if="c" style="display:none">deserialize_handle</span><span data-if="cpp" style="display:none">DeserializeHandle</span><span data-if="com" style="display:none">DeserializeHandle</span><span data-if="dotnet" style="display:none">DeserializeHandle</span><span data-if="python" style="display:none">deserialize_handle</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
